package br.com.unip.menudroidweb.facade;

import java.io.Serializable;
import java.util.List;
import br.com.unip.menudroidweb.model.Empresa;
import br.com.unip.menudroidweb.dao.EmpresaDAO;

public class EmpresaFacade implements Serializable {
	private static final long serialVersionUID = -4637460996043377790L;
	
	private EmpresaDAO empresaDAO = new EmpresaDAO();

	public void createEmpresa(Empresa empresa) {
		empresaDAO.beginTransaction();
		empresaDAO.save(empresa);
		empresaDAO.commitAndCloseTransaction();
	}

	public void updateEmpresa(Empresa empresa) {
		empresaDAO.beginTransaction();
		Empresa persistedEmpresa = empresaDAO.find(empresa.getIdEmpresa());
		persistedEmpresa.setRazaoSocial(empresa.getRazaoSocial());
		persistedEmpresa.setNomeFantasia(empresa.getNomeFantasia());
		persistedEmpresa.setCnpj(empresa.getCnpj());
		persistedEmpresa.setBairro(empresa.getBairro());
		persistedEmpresa.setEndereco(empresa.getEndereco());
		persistedEmpresa.setNumero(empresa.getNumero());
		persistedEmpresa.setEmail(empresa.getEmail());
		persistedEmpresa.setTelefone(empresa.getTelefone());
		empresaDAO.update(persistedEmpresa);
		empresaDAO.commitAndCloseTransaction();
	}

	public Empresa findEmpresa(int empresaId) {
		empresaDAO.beginTransaction();
		Empresa empresa = empresaDAO.find(empresaId);
		empresaDAO.closeTransaction();
		return empresa;
	}

	public List<Empresa> listAll() {
		empresaDAO.beginTransaction();
		List<Empresa> empresa = empresaDAO.findAll();
		empresaDAO.closeTransaction();
		return empresa;
	}

	public void deleteEmpresa(Empresa empresa) {
		empresaDAO.beginTransaction();
		Empresa persistedEmpresa = empresaDAO.findReferenceOnly(empresa.getIdEmpresa());
		empresaDAO.delete(persistedEmpresa);
		empresaDAO.commitAndCloseTransaction();
	}
}
